package com.htl.exampro.question.pojo.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 试题表
 * </p>
 *
 * @author hehehe
 * @since 2025-05-25
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@Schema(name = "QuestionVO对象", description = "试题表")
public class QuestionVO implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 试题ID
     */
    @Schema(description = "试题ID")
    private String questionId;

    /**
     * 题型
     */
    @Schema(description = "题型ID")
    private Integer typeId;

    /**
     * 题型
     */
    @Schema(description = "题型")
    private String questionType;

    /**
     * 试题内容
     */
    @Schema(description = "试题内容")
    private String content;

    /**
     * 选择题选项
     */
    @Schema(description = "选择题选项")
    private String options;

    /**
     * 正确答案
     */
    @Schema(description = "正确答案")
    private String answer;

    /**
     * 解析
     */
    @Schema(description = "解析")
    private String analysis;

    /**
     * 难度
     */
    @Schema(description = "难度")
    private Integer difficulty;

    /**
     * 是否公开(0私有/1公开)
     */
    @Schema(description = "是否公开(0私有/1公开)")
    private Boolean isPublic;

    /**
     * 原试题ID
     */
    @Schema(description = "原试题ID")
    private String yQuestionId;

    /**
     * 试题版本
     */
    @Schema(description = "试题版本")
    private Integer version;

    /**
     * 最新版本(1最新版/0非最新版)
     */
    @Schema(description = "最新版本(1最新版/0非最新版)")
    private Boolean isCurrent;

    /**
     * 创建人ID
     */
    @Schema(description = "创建人ID")
    private String createdPerson;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createdTime;

    /**
     * 修改人ID
     */
    @Schema(description = "修改人ID")
    private String updatedPerson;

    /**
     * 修改时间
     */
    @Schema(description = "修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updatedTime;
}
